package course.d1222;
/*
    try-catch-finally
    try{
     //可能出现的异常代码
     }catch(XxxException e ){
     //捕获到异常对象的处理逻辑
     }catch(XxxException e ){
     //捕获到异常对象的处理逻辑
     }finally{
     //一定会执行的代码
     //一般存放的是资源的释放
     }
 */
public class p4 {
    public static void main(String[] args) {
//             try{
//                 String s = null;
//                 System.out.println(1 / 0);
//                 System.out.println(s.length());
//                 return;
//             }
//               catch (ArithmeticException a){
//                 System.out.println("出现了算数异常");
//             } catch (Exception e){
//                 System.out.println("出现了异常");
//                 System.out.println(e);
//             }
//           finally{
//                 System.out.println("finally 语句");
//             }
//        System.out.println("程序结束");

        System.out.println("test1(s) = " + test1(1));

        System.out.println("test2(new StringBuilder()) = " + test2(new StringBuilder()));

    }
    public static int test1(int a ){
        try{
            a = 100;
                 /*
                 在执行finally语句之前，会把返回之前的值存好，等finally语句执行完后，把存好的值返回
                  */
            return a;
        }finally {
            a=200;
        }
    }
    public static StringBuilder test2(StringBuilder a){
        try{
            a.append("hello");
            return a;
        }finally {
            System.out.println("finally");
            a.append(true);
        }
    }
}
